Centos7 安装配置mysql数据库

远程访问阿里云服务

ssh-keygen

ssh-copy-id root@ip

ssh root@ip

其中ip为服务器的ip地址

下载安装并配置mysql数据库

在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/,

配置YUM源

  1. 下载mysql源安装包:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
  2. 安装mysql源:yum localinstall mysql57-community-release-el7-8.noarch.rpm
  3. 检查mysql源是否安装成功:yum repolist enabled | grep "mysql.*-community.*"(出现三行红色数据库mysql相关字段则表示成功)
  4. 可以修改vim /etc/yum.repos.d/mysql-community.repo源,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。

安装mysql

shell> yum install mysql-community-server

启动MySQL服务

shell> systemctl start mysqld

查看mysql的启动状态:

shell> service mysql(d) status

开启启动

shell> systemctl enable mysqld

shell> systemctl daemon-reload

修改root本地登录密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

shell> grep 'temporary password' /var/log/mysqld.log

进入mysql:

shell> mysql -uroot -p

注意:在此之上的命令都是在 shell 命令行进行,不需要进入或者登录mysql

修改密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

或者:

mysql> set password for 'root'@'localhost'=password('MyNewPass4!');

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误。

通过msyql环境变量可以查看密码策略的相关信息:

mysql> show variables like '%password%';

添加远程登录用户

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'chrootliu'@'%' IDENTIFIED BY 'youPassword!' WITH GRANT OPTION;

退出mysql

exitquit

配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

1
2
3
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

重新启动mysql服务:

shell> service mysql(d) restart

到此为止,mysql的配置已基本完成,可以尝试用数据库连接工具连接数据库,如果出现连接失败错误,则可以考虑是否是阿里云未配置安全组规则端口服务器防火墙拦截了3306端口

默认配置文件路径:

配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid

其它添加用户、删除用户与授权命令

一、创建用户命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

例如:

CREATE USER 'test_admin'@'localhost' IDENTIFIED BY 'admin@123_S';

其中:

username——将要创建的用户名;
host——指定该用户在哪个主机上可以登录,”localhost”指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录,将”localhost”改为”%”,表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
password——该用户的登录密码,密码可以为空,若为空则该用户可以不需要密码登录服务器。

二、授权:以root用户登录到数据库进行授权

命令:

GRANT privileges ON databasename.tablename TO 'username'@'host'

例如:

1
2
3
4
5
GRANT SELECT ON test_db.* TO 'test_admin2'@'%';

flush privileges;

注意:必须执行flush privileges;

其中:

privileges——用户的操作权限,如SELECT等。如果授予所有权限则使用ALL。

databasename——数据库名称。tablename——表名。如果要给该用户授予对所有数据库和表的相应操作权限则可用表示,例如.*

三、撤销用户权限

命令:

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

例如:

REVOKE SELECT ON test_db.* FROM 'test_min'@'%';

四、删除账户及权限

命令:

drop user 'username'@'host';

五、查看用户的授权

命令:

SHOW GRANTS FOR 'username'@'host'